<?php
/**
 * Model基类
 * @author zhaorongwei
 * @data 2012-06-18
 */
class Model
{
	protected $db;
	protected $tbl;
	protected $prefix='';

	public function __construct($tblname=null,$prefix=null)
	{
		$this->db=loadMysql('mysql',DB_INTERFACE);
		if(is_null($prefix))
		{
			$prefix=defined('TBL_PREFIX')?TBL_PREFIX:'';
		}
		if(is_null($tblname))
		{
			$tblname=str_replace('model','',strtolower(get_class($this)));
		}
		if($tblname)
		{
			if($prefix && strpos($tblname,$prefix)===0)
			{
				$this->tbl=$tblname;
			}
			else
			{
				$this->tbl=$prefix.$tblname;
			}
		}
	}
	
  /**
   * 新增一条数据
   * @param array $data 插入数据表的数据
   * @return int
   */
	public function add($data,$method='INSERT')
	{
		return $this->db->insertData($this->tbl,$data,$method);
	}

  /**
   * 删除一条数据
   * @param string|array 删除条件
   * @return int
   */
	public function del($where)
	{
		if($where)
		{
			return $this->db->delData($this->tbl,$where);
		}
	}
	
  /**
   * 修改数据
   * @param string|array $data 修改数据
   * @param string|array $where 修改条件
   * @return int
   */
	public function update($data,$where)
	{
		if($this->tbl && $data && $where)
		{
			return $this->db->updateData($this->tbl,$data,$where);
		}
	}
	
  /**
   * 获得列表数据列表
   * @param string|array $where 选择条件
   * @param string 查询的字段
   * @return array
   */ 
	public function select($where,$field=null)
	{
		if($this->tbl)
		{
			$sql="SELECT ".(empty($field)?'*':(is_array($field)?join(',',$field):trim($field,',')))." FROM ".$this->tbl;
			if($where)
			{
				if(is_array($where))
				{
					$str = '';
					$f = '';
					foreach($where as $key=>$item)
					{
						$str .= " $f `$key` = '".$this->db->escape($item)."'";
						$f = 'AND';
					}
					$sql.=$str;
				}
				else
				{
					$sql.=" WHERE ".$where;
				}
			}
			return $this->db->getResults($sql);
		}
	}
}
